<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>4.createAPI形式的ref</title>
</head>

<body>
    <!-- 准备好一个“容器” -->
    <div id="test"></div>
    <!-- 引入react核心库 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom，用于支持react操作DOM -->
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <!-- 引入babel，用于将jsx转为js -->
    <script type="text/javascript" src="../js/babel.min.js"></script>
    <script type="text/babel"> /* 此处一定要写babel */
    /****************
     * react使用内联css样式: 就是直接在元素标签的style属性中写css样式，但是这里有三个注意点:
        1. style等号后面必须接双大括号也就是 style={{ xx: xx }} 这样
        2. css的属性必须写成驼峰型，不能有中横线，比如marginRight, 而不能说margin-right
        3. style中属性的键值必须带引号： style={{ fontSize: "12px" }} ，这里的12px必须有引号
     *  React.createRef调用后可以返回一个容器,该容器可以存储被ref所标识的节点 该容器是专人专用的
     * 
     * ****************/ 
    //1.创建组件
    class Demo extends React.Component{
        myRef = React.createRef()
        myRef2 = React.createRef()
        //展示左侧输入框中的数据
        showData = ()=>{
            console.log("!!!!!!!!",this)
            //refs写法
            // const {input1} = this
            // alert(input1.value)
            const {current:{value}} = this.myRef
             alert(value)
        }
        showData2=()=>{
            const {current:{value}} = this.myRef2;
            alert(value)
        }
       render(){
            return(
                <div>
                    <input ref={this.myRef} type="text" placeholder="点击按钮提示数据"/>
                    <button style={{margin:'0 5px'}} onClick={this.showData}>点击按钮提示左侧数据</button>
                    <input ref={this.myRef2} onBlur={this.showData2} type="text" placeholder="失去焦点提示数据"/>
                </div>
            )
       }
     }
    //2.渲染虚拟DOM到页面
    ReactDOM.render(<Demo/>,document.getElementById('test'))
    </script>
</body>

</html>